﻿#pragma once
#include "KSynthesisMin1.h"
#include "tradebase_global.h"

class TRADEBASE_EXPORT KSynthesisMin5 : public KSynthesisMin1
{
public:
	KSynthesisMin5(const std::string &pSymbol);
	~KSynthesisMin5();

	// 给定了批量的原始K线
	virtual void SynthesisFrmList(const std::deque<MData::KLineItem> &frmKItems, std::deque<MData::KLineItem> &outKItems) override;

	// 给定了1个日期
	//virtual void SynthesisFrmDate(time_t pDate, std::deque<MData::KLineItem> &outKItems) override;

	// 给定了一个时间范围
	//virtual void SynthesisFrmRange(time_t frmTime, time_t endTime, std::deque<MData::KLineItem> &outKItems) override;

	// 给定了一个具体的时间
	virtual void SynthesisFrmTime(time_t pTime, MData::KLineItem &outKItem) override;

	//************************************
	// Method:    根据给定的具体时间判断这个K线是否可以合成了
	// Parameter: time_t pLaskKUpdateTime 上跟K线的更新时间，注意未0时返回false
	// Parameter: time_t curTime 当前的行情时间
	//************************************
	virtual bool IsThisKItemFinished(time_t pLaskKUpdateTime, time_t curTime) override;
protected:
	// 获取当前K线的范围
	virtual void getKItemRange(time_t pUpdateTime, time_t &outKItemBegin, time_t &outKItemEnd) override;
};

